/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package engine;

/**
 * Interfejs populacji
 * @author Bartek
 */
public interface PopInterface {
    /**
     * Krzyżowanie crossover
     * @param parent1 osobnik A
     * @param parent2 gosobnik B
     */
    void crossOver(Specimen parent1, Specimen parent2);
    /**
     * Dodaj nowego osobnika do gatunku
     * @param newOne nowy osobnik
     */
    void addSpecimen(Specimen newOne);
    /**
     * Pobierz osobnika
     * @param n indeks osobnika
     * @return osobnik z gatunku
     */
    Specimen getSpecimen(int n);
    /**
     * Liczba osobników
     * @return liczba
     */
    int count();
    /**
     * Sorotwanie osobników w danym gatunku
     */
    void sort();
    /**
     * Czyszczenie populacji
     */
    void clear();
}
